;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.6.0 #4309 (Jul 28 2006)
; This file generated Tue Apr 05 22:14:22 2011
;--------------------------------------------------------
	.module lcd
	.optsdcc -mmcs51 --model-large
	
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _TF1
	.globl _TR1
	.globl _TF0
	.globl _TR0
	.globl _IE1
	.globl _IT1
	.globl _IE0
	.globl _IT0
	.globl _SM0
	.globl _SM1
	.globl _SM2
	.globl _REN
	.globl _TB8
	.globl _RB8
	.globl _TI
	.globl _RI
	.globl _CY
	.globl _AC
	.globl _F0
	.globl _RS1
	.globl _RS0
	.globl _OV
	.globl _F1
	.globl _P
	.globl _RD
	.globl _WR
	.globl _T1
	.globl _T0
	.globl _INT1
	.globl _INT0
	.globl _TXD0
	.globl _TXD
	.globl _RXD0
	.globl _RXD
	.globl _P3_7
	.globl _P3_6
	.globl _P3_5
	.globl _P3_4
	.globl _P3_3
	.globl _P3_2
	.globl _P3_1
	.globl _P3_0
	.globl _P2_7
	.globl _P2_6
	.globl _P2_5
	.globl _P2_4
	.globl _P2_3
	.globl _P2_2
	.globl _P2_1
	.globl _P2_0
	.globl _P1_7
	.globl _P1_6
	.globl _P1_5
	.globl _P1_4
	.globl _P1_3
	.globl _P1_2
	.globl _P1_1
	.globl _P1_0
	.globl _P0_7
	.globl _P0_6
	.globl _P0_5
	.globl _P0_4
	.globl _P0_3
	.globl _P0_2
	.globl _P0_1
	.globl _P0_0
	.globl _PS
	.globl _PT1
	.globl _PX1
	.globl _PT0
	.globl _PX0
	.globl _EA
	.globl _ES
	.globl _ET1
	.globl _EX1
	.globl _ET0
	.globl _EX0
	.globl _BREG_F7
	.globl _BREG_F6
	.globl _BREG_F5
	.globl _BREG_F4
	.globl _BREG_F3
	.globl _BREG_F2
	.globl _BREG_F1
	.globl _BREG_F0
	.globl _P5_7
	.globl _P5_6
	.globl _P5_5
	.globl _P5_4
	.globl _P5_3
	.globl _P5_2
	.globl _P5_1
	.globl _P5_0
	.globl _P4_7
	.globl _P4_6
	.globl _P4_5
	.globl _P4_4
	.globl _P4_3
	.globl _P4_2
	.globl _P4_1
	.globl _P4_0
	.globl _PX0L
	.globl _PT0L
	.globl _PX1L
	.globl _PT1L
	.globl _PLS
	.globl _PT2L
	.globl _PPCL
	.globl _EC
	.globl _CCF0
	.globl _CCF1
	.globl _CCF2
	.globl _CCF3
	.globl _CCF4
	.globl _CR
	.globl _CF
	.globl _TF2
	.globl _EXF2
	.globl _RCLK
	.globl _TCLK
	.globl _EXEN2
	.globl _TR2
	.globl _C_T2
	.globl _CP_RL2
	.globl _T2CON_7
	.globl _T2CON_6
	.globl _T2CON_5
	.globl _T2CON_4
	.globl _T2CON_3
	.globl _T2CON_2
	.globl _T2CON_1
	.globl _T2CON_0
	.globl _PT2
	.globl _ET2
	.globl _TMOD
	.globl _TL1
	.globl _TL0
	.globl _TH1
	.globl _TH0
	.globl _TCON
	.globl _SP
	.globl _SCON
	.globl _SBUF0
	.globl _SBUF
	.globl _PSW
	.globl _PCON
	.globl _P3
	.globl _P2
	.globl _P1
	.globl _P0
	.globl _IP
	.globl _IE
	.globl _DP0L
	.globl _DPL
	.globl _DP0H
	.globl _DPH
	.globl _B
	.globl _ACC
	.globl _EECON
	.globl _KBF
	.globl _KBE
	.globl _KBLS
	.globl _BRL
	.globl _BDRCON
	.globl _T2MOD
	.globl _SPDAT
	.globl _SPSTA
	.globl _SPCON
	.globl _SADEN
	.globl _SADDR
	.globl _WDTPRG
	.globl _WDTRST
	.globl _P5
	.globl _P4
	.globl _IPH1
	.globl _IPL1
	.globl _IPH0
	.globl _IPL0
	.globl _IEN1
	.globl _IEN0
	.globl _CMOD
	.globl _CL
	.globl _CH
	.globl _CCON
	.globl _CCAPM4
	.globl _CCAPM3
	.globl _CCAPM2
	.globl _CCAPM1
	.globl _CCAPM0
	.globl _CCAP4L
	.globl _CCAP3L
	.globl _CCAP2L
	.globl _CCAP1L
	.globl _CCAP0L
	.globl _CCAP4H
	.globl _CCAP3H
	.globl _CCAP2H
	.globl _CCAP1H
	.globl _CCAP0H
	.globl _CKCKON1
	.globl _CKCKON0
	.globl _CKRL
	.globl _AUXR1
	.globl _AUXR
	.globl _TH2
	.globl _TL2
	.globl _RCAP2H
	.globl _RCAP2L
	.globl _T2CON
	.globl _cursorPos
	.globl _f_skipBusyChk
	.globl _lcdcreatechar_PARM_2
	.globl _lcdPrintf3Int_PARM_5
	.globl _lcdPrintf3Int_PARM_4
	.globl _lcdPrintf3Int_PARM_3
	.globl _lcdPrintf3Int_PARM_2
	.globl _lcdPrintf2Int_PARM_4
	.globl _lcdPrintf2Int_PARM_3
	.globl _lcdPrintf2Int_PARM_2
	.globl _lcdPrintf1Int_PARM_3
	.globl _lcdPrintf1Int_PARM_2
	.globl _lcdPrintToLine_PARM_2
	.globl _lcdgotoxy_PARM_2
	.globl _lcdPtr
	.globl _lcdinit
	.globl _lcdCmd
	.globl _lcdputch
	.globl _lcdbusywait
	.globl _lcdgotoaddr
	.globl _lcdgotoxy
	.globl _lcdputstr
	.globl _clrLcd
	.globl _lcdHome
	.globl _lcdPrintToLine
	.globl _lcdPrintf1Int
	.globl _lcdPrintf2Int
	.globl _lcdPrintf3Int
	.globl _clrLine
	.globl _lcdcreatechar
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
	.area RSEG    (DATA)
G$T2CON$0$0 == 0x00c8
_T2CON	=	0x00c8
G$RCAP2L$0$0 == 0x00ca
_RCAP2L	=	0x00ca
G$RCAP2H$0$0 == 0x00cb
_RCAP2H	=	0x00cb
G$TL2$0$0 == 0x00cc
_TL2	=	0x00cc
G$TH2$0$0 == 0x00cd
_TH2	=	0x00cd
G$AUXR$0$0 == 0x008e
_AUXR	=	0x008e
G$AUXR1$0$0 == 0x00a2
_AUXR1	=	0x00a2
G$CKRL$0$0 == 0x0097
_CKRL	=	0x0097
G$CKCKON0$0$0 == 0x008f
_CKCKON0	=	0x008f
G$CKCKON1$0$0 == 0x008f
_CKCKON1	=	0x008f
G$CCAP0H$0$0 == 0x00fa
_CCAP0H	=	0x00fa
G$CCAP1H$0$0 == 0x00fb
_CCAP1H	=	0x00fb
G$CCAP2H$0$0 == 0x00fc
_CCAP2H	=	0x00fc
G$CCAP3H$0$0 == 0x00fd
_CCAP3H	=	0x00fd
G$CCAP4H$0$0 == 0x00fe
_CCAP4H	=	0x00fe
G$CCAP0L$0$0 == 0x00ea
_CCAP0L	=	0x00ea
G$CCAP1L$0$0 == 0x00eb
_CCAP1L	=	0x00eb
G$CCAP2L$0$0 == 0x00ec
_CCAP2L	=	0x00ec
G$CCAP3L$0$0 == 0x00ed
_CCAP3L	=	0x00ed
G$CCAP4L$0$0 == 0x00ee
_CCAP4L	=	0x00ee
G$CCAPM0$0$0 == 0x00da
_CCAPM0	=	0x00da
G$CCAPM1$0$0 == 0x00db
_CCAPM1	=	0x00db
G$CCAPM2$0$0 == 0x00dc
_CCAPM2	=	0x00dc
G$CCAPM3$0$0 == 0x00dd
_CCAPM3	=	0x00dd
G$CCAPM4$0$0 == 0x00de
_CCAPM4	=	0x00de
G$CCON$0$0 == 0x00d8
_CCON	=	0x00d8
G$CH$0$0 == 0x00f9
_CH	=	0x00f9
G$CL$0$0 == 0x00e9
_CL	=	0x00e9
G$CMOD$0$0 == 0x00d9
_CMOD	=	0x00d9
G$IEN0$0$0 == 0x00a8
_IEN0	=	0x00a8
G$IEN1$0$0 == 0x00b1
_IEN1	=	0x00b1
G$IPL0$0$0 == 0x00b8
_IPL0	=	0x00b8
G$IPH0$0$0 == 0x00b7
_IPH0	=	0x00b7
G$IPL1$0$0 == 0x00b2
_IPL1	=	0x00b2
G$IPH1$0$0 == 0x00b3
_IPH1	=	0x00b3
G$P4$0$0 == 0x00c0
_P4	=	0x00c0
G$P5$0$0 == 0x00d8
_P5	=	0x00d8
G$WDTRST$0$0 == 0x00a6
_WDTRST	=	0x00a6
G$WDTPRG$0$0 == 0x00a7
_WDTPRG	=	0x00a7
G$SADDR$0$0 == 0x00a9
_SADDR	=	0x00a9
G$SADEN$0$0 == 0x00b9
_SADEN	=	0x00b9
G$SPCON$0$0 == 0x00c3
_SPCON	=	0x00c3
G$SPSTA$0$0 == 0x00c4
_SPSTA	=	0x00c4
G$SPDAT$0$0 == 0x00c5
_SPDAT	=	0x00c5
G$T2MOD$0$0 == 0x00c9
_T2MOD	=	0x00c9
G$BDRCON$0$0 == 0x009b
_BDRCON	=	0x009b
G$BRL$0$0 == 0x009a
_BRL	=	0x009a
G$KBLS$0$0 == 0x009c
_KBLS	=	0x009c
G$KBE$0$0 == 0x009d
_KBE	=	0x009d
G$KBF$0$0 == 0x009e
_KBF	=	0x009e
G$EECON$0$0 == 0x00d2
_EECON	=	0x00d2
G$ACC$0$0 == 0x00e0
_ACC	=	0x00e0
G$B$0$0 == 0x00f0
_B	=	0x00f0
G$DPH$0$0 == 0x0083
_DPH	=	0x0083
G$DP0H$0$0 == 0x0083
_DP0H	=	0x0083
G$DPL$0$0 == 0x0082
_DPL	=	0x0082
G$DP0L$0$0 == 0x0082
_DP0L	=	0x0082
G$IE$0$0 == 0x00a8
_IE	=	0x00a8
G$IP$0$0 == 0x00b8
_IP	=	0x00b8
G$P0$0$0 == 0x0080
_P0	=	0x0080
G$P1$0$0 == 0x0090
_P1	=	0x0090
G$P2$0$0 == 0x00a0
_P2	=	0x00a0
G$P3$0$0 == 0x00b0
_P3	=	0x00b0
G$PCON$0$0 == 0x0087
_PCON	=	0x0087
G$PSW$0$0 == 0x00d0
_PSW	=	0x00d0
G$SBUF$0$0 == 0x0099
_SBUF	=	0x0099
G$SBUF0$0$0 == 0x0099
_SBUF0	=	0x0099
G$SCON$0$0 == 0x0098
_SCON	=	0x0098
G$SP$0$0 == 0x0081
_SP	=	0x0081
G$TCON$0$0 == 0x0088
_TCON	=	0x0088
G$TH0$0$0 == 0x008c
_TH0	=	0x008c
G$TH1$0$0 == 0x008d
_TH1	=	0x008d
G$TL0$0$0 == 0x008a
_TL0	=	0x008a
G$TL1$0$0 == 0x008b
_TL1	=	0x008b
G$TMOD$0$0 == 0x0089
_TMOD	=	0x0089
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
	.area RSEG    (DATA)
G$ET2$0$0 == 0x00ad
_ET2	=	0x00ad
G$PT2$0$0 == 0x00bd
_PT2	=	0x00bd
G$T2CON_0$0$0 == 0x00c8
_T2CON_0	=	0x00c8
G$T2CON_1$0$0 == 0x00c9
_T2CON_1	=	0x00c9
G$T2CON_2$0$0 == 0x00ca
_T2CON_2	=	0x00ca
G$T2CON_3$0$0 == 0x00cb
_T2CON_3	=	0x00cb
G$T2CON_4$0$0 == 0x00cc
_T2CON_4	=	0x00cc
G$T2CON_5$0$0 == 0x00cd
_T2CON_5	=	0x00cd
G$T2CON_6$0$0 == 0x00ce
_T2CON_6	=	0x00ce
G$T2CON_7$0$0 == 0x00cf
_T2CON_7	=	0x00cf
G$CP_RL2$0$0 == 0x00c8
_CP_RL2	=	0x00c8
G$C_T2$0$0 == 0x00c9
_C_T2	=	0x00c9
G$TR2$0$0 == 0x00ca
_TR2	=	0x00ca
G$EXEN2$0$0 == 0x00cb
_EXEN2	=	0x00cb
G$TCLK$0$0 == 0x00cc
_TCLK	=	0x00cc
G$RCLK$0$0 == 0x00cd
_RCLK	=	0x00cd
G$EXF2$0$0 == 0x00ce
_EXF2	=	0x00ce
G$TF2$0$0 == 0x00cf
_TF2	=	0x00cf
G$CF$0$0 == 0x00df
_CF	=	0x00df
G$CR$0$0 == 0x00de
_CR	=	0x00de
G$CCF4$0$0 == 0x00dc
_CCF4	=	0x00dc
G$CCF3$0$0 == 0x00db
_CCF3	=	0x00db
G$CCF2$0$0 == 0x00da
_CCF2	=	0x00da
G$CCF1$0$0 == 0x00d9
_CCF1	=	0x00d9
G$CCF0$0$0 == 0x00d8
_CCF0	=	0x00d8
G$EC$0$0 == 0x00ae
_EC	=	0x00ae
G$PPCL$0$0 == 0x00be
_PPCL	=	0x00be
G$PT2L$0$0 == 0x00bd
_PT2L	=	0x00bd
G$PLS$0$0 == 0x00bc
_PLS	=	0x00bc
G$PT1L$0$0 == 0x00bb
_PT1L	=	0x00bb
G$PX1L$0$0 == 0x00ba
_PX1L	=	0x00ba
G$PT0L$0$0 == 0x00b9
_PT0L	=	0x00b9
G$PX0L$0$0 == 0x00b8
_PX0L	=	0x00b8
G$P4_0$0$0 == 0x00c0
_P4_0	=	0x00c0
G$P4_1$0$0 == 0x00c1
_P4_1	=	0x00c1
G$P4_2$0$0 == 0x00c2
_P4_2	=	0x00c2
G$P4_3$0$0 == 0x00c3
_P4_3	=	0x00c3
G$P4_4$0$0 == 0x00c4
_P4_4	=	0x00c4
G$P4_5$0$0 == 0x00c5
_P4_5	=	0x00c5
G$P4_6$0$0 == 0x00c6
_P4_6	=	0x00c6
G$P4_7$0$0 == 0x00c7
_P4_7	=	0x00c7
G$P5_0$0$0 == 0x00d8
_P5_0	=	0x00d8
G$P5_1$0$0 == 0x00d9
_P5_1	=	0x00d9
G$P5_2$0$0 == 0x00da
_P5_2	=	0x00da
G$P5_3$0$0 == 0x00db
_P5_3	=	0x00db
G$P5_4$0$0 == 0x00dc
_P5_4	=	0x00dc
G$P5_5$0$0 == 0x00dd
_P5_5	=	0x00dd
G$P5_6$0$0 == 0x00de
_P5_6	=	0x00de
G$P5_7$0$0 == 0x00df
_P5_7	=	0x00df
G$BREG_F0$0$0 == 0x00f0
_BREG_F0	=	0x00f0
G$BREG_F1$0$0 == 0x00f1
_BREG_F1	=	0x00f1
G$BREG_F2$0$0 == 0x00f2
_BREG_F2	=	0x00f2
G$BREG_F3$0$0 == 0x00f3
_BREG_F3	=	0x00f3
G$BREG_F4$0$0 == 0x00f4
_BREG_F4	=	0x00f4
G$BREG_F5$0$0 == 0x00f5
_BREG_F5	=	0x00f5
G$BREG_F6$0$0 == 0x00f6
_BREG_F6	=	0x00f6
G$BREG_F7$0$0 == 0x00f7
_BREG_F7	=	0x00f7
G$EX0$0$0 == 0x00a8
_EX0	=	0x00a8
G$ET0$0$0 == 0x00a9
_ET0	=	0x00a9
G$EX1$0$0 == 0x00aa
_EX1	=	0x00aa
G$ET1$0$0 == 0x00ab
_ET1	=	0x00ab
G$ES$0$0 == 0x00ac
_ES	=	0x00ac
G$EA$0$0 == 0x00af
_EA	=	0x00af
G$PX0$0$0 == 0x00b8
_PX0	=	0x00b8
G$PT0$0$0 == 0x00b9
_PT0	=	0x00b9
G$PX1$0$0 == 0x00ba
_PX1	=	0x00ba
G$PT1$0$0 == 0x00bb
_PT1	=	0x00bb
G$PS$0$0 == 0x00bc
_PS	=	0x00bc
G$P0_0$0$0 == 0x0080
_P0_0	=	0x0080
G$P0_1$0$0 == 0x0081
_P0_1	=	0x0081
G$P0_2$0$0 == 0x0082
_P0_2	=	0x0082
G$P0_3$0$0 == 0x0083
_P0_3	=	0x0083
G$P0_4$0$0 == 0x0084
_P0_4	=	0x0084
G$P0_5$0$0 == 0x0085
_P0_5	=	0x0085
G$P0_6$0$0 == 0x0086
_P0_6	=	0x0086
G$P0_7$0$0 == 0x0087
_P0_7	=	0x0087
G$P1_0$0$0 == 0x0090
_P1_0	=	0x0090
G$P1_1$0$0 == 0x0091
_P1_1	=	0x0091
G$P1_2$0$0 == 0x0092
_P1_2	=	0x0092
G$P1_3$0$0 == 0x0093
_P1_3	=	0x0093
G$P1_4$0$0 == 0x0094
_P1_4	=	0x0094
G$P1_5$0$0 == 0x0095
_P1_5	=	0x0095
G$P1_6$0$0 == 0x0096
_P1_6	=	0x0096
G$P1_7$0$0 == 0x0097
_P1_7	=	0x0097
G$P2_0$0$0 == 0x00a0
_P2_0	=	0x00a0
G$P2_1$0$0 == 0x00a1
_P2_1	=	0x00a1
G$P2_2$0$0 == 0x00a2
_P2_2	=	0x00a2
G$P2_3$0$0 == 0x00a3
_P2_3	=	0x00a3
G$P2_4$0$0 == 0x00a4
_P2_4	=	0x00a4
G$P2_5$0$0 == 0x00a5
_P2_5	=	0x00a5
G$P2_6$0$0 == 0x00a6
_P2_6	=	0x00a6
G$P2_7$0$0 == 0x00a7
_P2_7	=	0x00a7
G$P3_0$0$0 == 0x00b0
_P3_0	=	0x00b0
G$P3_1$0$0 == 0x00b1
_P3_1	=	0x00b1
G$P3_2$0$0 == 0x00b2
_P3_2	=	0x00b2
G$P3_3$0$0 == 0x00b3
_P3_3	=	0x00b3
G$P3_4$0$0 == 0x00b4
_P3_4	=	0x00b4
G$P3_5$0$0 == 0x00b5
_P3_5	=	0x00b5
G$P3_6$0$0 == 0x00b6
_P3_6	=	0x00b6
G$P3_7$0$0 == 0x00b7
_P3_7	=	0x00b7
G$RXD$0$0 == 0x00b0
_RXD	=	0x00b0
G$RXD0$0$0 == 0x00b0
_RXD0	=	0x00b0
G$TXD$0$0 == 0x00b1
_TXD	=	0x00b1
G$TXD0$0$0 == 0x00b1
_TXD0	=	0x00b1
G$INT0$0$0 == 0x00b2
_INT0	=	0x00b2
G$INT1$0$0 == 0x00b3
_INT1	=	0x00b3
G$T0$0$0 == 0x00b4
_T0	=	0x00b4
G$T1$0$0 == 0x00b5
_T1	=	0x00b5
G$WR$0$0 == 0x00b6
_WR	=	0x00b6
G$RD$0$0 == 0x00b7
_RD	=	0x00b7
G$P$0$0 == 0x00d0
_P	=	0x00d0
G$F1$0$0 == 0x00d1
_F1	=	0x00d1
G$OV$0$0 == 0x00d2
_OV	=	0x00d2
G$RS0$0$0 == 0x00d3
_RS0	=	0x00d3
G$RS1$0$0 == 0x00d4
_RS1	=	0x00d4
G$F0$0$0 == 0x00d5
_F0	=	0x00d5
G$AC$0$0 == 0x00d6
_AC	=	0x00d6
G$CY$0$0 == 0x00d7
_CY	=	0x00d7
G$RI$0$0 == 0x0098
_RI	=	0x0098
G$TI$0$0 == 0x0099
_TI	=	0x0099
G$RB8$0$0 == 0x009a
_RB8	=	0x009a
G$TB8$0$0 == 0x009b
_TB8	=	0x009b
G$REN$0$0 == 0x009c
_REN	=	0x009c
G$SM2$0$0 == 0x009d
_SM2	=	0x009d
G$SM1$0$0 == 0x009e
_SM1	=	0x009e
G$SM0$0$0 == 0x009f
_SM0	=	0x009f
G$IT0$0$0 == 0x0088
_IT0	=	0x0088
G$IE0$0$0 == 0x0089
_IE0	=	0x0089
G$IT1$0$0 == 0x008a
_IT1	=	0x008a
G$IE1$0$0 == 0x008b
_IE1	=	0x008b
G$TR0$0$0 == 0x008c
_TR0	=	0x008c
G$TF0$0$0 == 0x008d
_TF0	=	0x008d
G$TR1$0$0 == 0x008e
_TR1	=	0x008e
G$TF1$0$0 == 0x008f
_TF1	=	0x008f
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
	.area REG_BANK_0	(REL,OVR,DATA)
	.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area DSEG    (DATA)
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area OSEG    (OVR,DATA)
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area ISEG    (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area BSEG    (BIT)
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
	.area PSEG    (PAG,XDATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
	.area XSEG    (XDATA)
G$lcdPtr$0$0 == 0xf000
_lcdPtr	=	0xf000
LlcdCmd$wrCmd$1$1==.
_lcdCmd_wrCmd_1_1:
	.ds 1
Llcdputch$wrData$1$1==.
_lcdputch_wrData_1_1:
	.ds 1
Llcdbusywait$rdCmd$1$1==.
_lcdbusywait_rdCmd_1_1:
	.ds 1
Llcdgotoaddr$addr$1$1==.
_lcdgotoaddr_addr_1_1:
	.ds 1
Llcdgotoxy$col$1$1==.
_lcdgotoxy_PARM_2:
	.ds 1
Llcdgotoxy$row$1$1==.
_lcdgotoxy_row_1_1:
	.ds 1
Llcdputstr$string$1$1==.
_lcdputstr_string_1_1:
	.ds 3
LlcdPrintToLine$string$1$1==.
_lcdPrintToLine_PARM_2:
	.ds 3
LlcdPrintToLine$line$1$1==.
_lcdPrintToLine_line_1_1:
	.ds 2
LlcdPrintf1Int$string$1$1==.
_lcdPrintf1Int_PARM_2:
	.ds 3
LlcdPrintf1Int$int1$1$1==.
_lcdPrintf1Int_PARM_3:
	.ds 2
LlcdPrintf1Int$line$1$1==.
_lcdPrintf1Int_line_1_1:
	.ds 2
LlcdPrintf1Int$str$1$1==.
_lcdPrintf1Int_str_1_1:
	.ds 32
LlcdPrintf2Int$string$1$1==.
_lcdPrintf2Int_PARM_2:
	.ds 3
LlcdPrintf2Int$int1$1$1==.
_lcdPrintf2Int_PARM_3:
	.ds 2
LlcdPrintf2Int$int2$1$1==.
_lcdPrintf2Int_PARM_4:
	.ds 2
LlcdPrintf2Int$line$1$1==.
_lcdPrintf2Int_line_1_1:
	.ds 2
LlcdPrintf2Int$str$1$1==.
_lcdPrintf2Int_str_1_1:
	.ds 32
LlcdPrintf3Int$string$1$1==.
_lcdPrintf3Int_PARM_2:
	.ds 3
LlcdPrintf3Int$int1$1$1==.
_lcdPrintf3Int_PARM_3:
	.ds 2
LlcdPrintf3Int$int2$1$1==.
_lcdPrintf3Int_PARM_4:
	.ds 2
LlcdPrintf3Int$int3$1$1==.
_lcdPrintf3Int_PARM_5:
	.ds 2
LlcdPrintf3Int$line$1$1==.
_lcdPrintf3Int_line_1_1:
	.ds 2
LlcdPrintf3Int$str$1$1==.
_lcdPrintf3Int_str_1_1:
	.ds 32
LclrLine$line$1$1==.
_clrLine_line_1_1:
	.ds 2
Llcdcreatechar$row_vals$1$1==.
_lcdcreatechar_PARM_2:
	.ds 3
Llcdcreatechar$ccode$1$1==.
_lcdcreatechar_ccode_1_1:
	.ds 1
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
	.area XISEG   (XDATA)
G$f_skipBusyChk$0$0==.
_f_skipBusyChk::
	.ds 2
G$cursorPos$0$0==.
_cursorPos::
	.ds 1
	.area HOME    (CODE)
	.area GSINIT0 (CODE)
	.area GSINIT1 (CODE)
	.area GSINIT2 (CODE)
	.area GSINIT3 (CODE)
	.area GSINIT4 (CODE)
	.area GSINIT5 (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area HOME    (CODE)
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area GSINIT  (CODE)
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME    (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdinit'
;------------------------------------------------------------
;------------------------------------------------------------
	G$lcdinit$0$0 ==.
	C$lcd.c$41$0$0 ==.
;	../src/lcd.c:41: void lcdinit(void) {								// Init routine as per HD44780 data sheet
;	-----------------------------------------
;	 function lcdinit
;	-----------------------------------------
_lcdinit:
	ar2 = 0x02
	ar3 = 0x03
	ar4 = 0x04
	ar5 = 0x05
	ar6 = 0x06
	ar7 = 0x07
	ar0 = 0x00
	ar1 = 0x01
	C$lcd.c$43$1$1 ==.
;	../src/lcd.c:43: LCD_RS = RS_CMD;
;	genAssign
	clr	_P1_3
	C$lcd.c$44$1$1 ==.
;	../src/lcd.c:44: LCD_RW = RW_WRITE;
;	genAssign
	clr	_P1_2
	C$lcd.c$45$1$1 ==.
;	../src/lcd.c:45: delay_millisec(16);                            	// Wait more than 15ms
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0010
	lcall	_delay_millisec
	C$lcd.c$46$1$1 ==.
;	../src/lcd.c:46: lcdCmd(0x38);                             		// Initialize for 8 bit mode , 4 lines
;	genCall
	mov	dpl,#0x38
	lcall	_lcdCmd
	C$lcd.c$47$1$1 ==.
;	../src/lcd.c:47: delay_millisec(5);                              // Wait more than 4.1ms
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0005
	lcall	_delay_millisec
	C$lcd.c$48$1$1 ==.
;	../src/lcd.c:48: lcdCmd(0x38);
;	genCall
	mov	dpl,#0x38
	lcall	_lcdCmd
	C$lcd.c$49$1$1 ==.
;	../src/lcd.c:49: delay_millisec(1);                             	// Wait more than 0.1ms
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_delay_millisec
	C$lcd.c$50$1$1 ==.
;	../src/lcd.c:50: lcdCmd(0x38);
;	genCall
	mov	dpl,#0x38
	lcall	_lcdCmd
	C$lcd.c$51$1$1 ==.
;	../src/lcd.c:51: delay_millisec(1);                             	// Wait more than 0.1ms
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0001
	lcall	_delay_millisec
	C$lcd.c$52$1$1 ==.
;	../src/lcd.c:52: lcdCmd(0x0D);                             		// Display On; Cursor On; Blink On
;	genCall
	mov	dpl,#0x0D
	lcall	_lcdCmd
	C$lcd.c$53$1$1 ==.
;	../src/lcd.c:53: lcdCmd(0x01);                             		// Clear the display
;	genCall
	mov	dpl,#0x01
	lcall	_lcdCmd
	C$lcd.c$54$1$1 ==.
;	../src/lcd.c:54: delay_millisec(5);                            	// Wait more than 1.64ms
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0005
	lcall	_delay_millisec
	C$lcd.c$55$1$1 ==.
;	../src/lcd.c:55: f_skipBusyChk = FALSE;
;	genAssign
	mov	dptr,#_f_skipBusyChk
	clr	a
	movx	@dptr,a
	inc	dptr
	movx	@dptr,a
;	Peephole 300	removed redundant label 00101$
	C$lcd.c$56$1$1 ==.
	XG$lcdinit$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdCmd'
;------------------------------------------------------------
;wrCmd                     Allocated with name '_lcdCmd_wrCmd_1_1'
;------------------------------------------------------------
	G$lcdCmd$0$0 ==.
	C$lcd.c$78$1$1 ==.
;	../src/lcd.c:78: void lcdCmd(char wrCmd)					 			// Write a command to the LCD.
;	-----------------------------------------
;	 function lcdCmd
;	-----------------------------------------
_lcdCmd:
;	genReceive
	mov	a,dpl
	mov	dptr,#_lcdCmd_wrCmd_1_1
	movx	@dptr,a
	C$lcd.c$80$1$1 ==.
;	../src/lcd.c:80: lcdbusywait();                                  	// Is the LCD ready to take the command?
;	genCall
	lcall	_lcdbusywait
	C$lcd.c$81$1$1 ==.
;	../src/lcd.c:81: LCD_RS = RS_CMD;                                // Register Select Low for writing command
;	genAssign
	clr	_P1_3
	C$lcd.c$82$1$1 ==.
;	../src/lcd.c:82: LCD_RW = RW_WRITE;                              // R!W low for write
;	genAssign
	clr	_P1_2
	C$lcd.c$83$1$1 ==.
;	../src/lcd.c:83: LCD_PORT = wrCmd;                          		// Command byte to register
;	genAssign
	mov	dptr,#_lcdCmd_wrCmd_1_1
	movx	a,@dptr
;	genCast
	mov	r2,a
	mov	dptr,#_lcdPtr
;	Peephole 100	removed redundant mov
	movx	@dptr,a
	mov	a,r2
	rlc	a
	subb	a,acc
	inc	dptr
	movx	@dptr,a
;	Peephole 300	removed redundant label 00101$
	C$lcd.c$86$1$1 ==.
	XG$lcdCmd$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdputch'
;------------------------------------------------------------
;wrData                    Allocated with name '_lcdputch_wrData_1_1'
;------------------------------------------------------------
	G$lcdputch$0$0 ==.
	C$lcd.c$108$1$1 ==.
;	../src/lcd.c:108: void lcdputch(char wrData)	{						// Write a character to the LCD.
;	-----------------------------------------
;	 function lcdputch
;	-----------------------------------------
_lcdputch:
;	genReceive
	mov	a,dpl
	mov	dptr,#_lcdputch_wrData_1_1
	movx	@dptr,a
	C$lcd.c$110$1$1 ==.
;	../src/lcd.c:110: lcdbusywait();                                  // Is the LCD ready to take the command?
;	genCall
	lcall	_lcdbusywait
	C$lcd.c$111$1$1 ==.
;	../src/lcd.c:111: LCD_RS = RS_DATA;                               // Register Select High for writing data
;	genAssign
	setb	_P1_3
	C$lcd.c$112$1$1 ==.
;	../src/lcd.c:112: LCD_RW = RW_WRITE;                              // R!W low for write
;	genAssign
	clr	_P1_2
	C$lcd.c$114$1$1 ==.
;	../src/lcd.c:114: LCD_PORT = wrData;                          	// Data byte to data port
;	genAssign
	mov	dptr,#_lcdputch_wrData_1_1
	movx	a,@dptr
;	genCast
	mov	r2,a
	mov	dptr,#_lcdPtr
;	Peephole 100	removed redundant mov
	movx	@dptr,a
	mov	a,r2
	rlc	a
	subb	a,acc
	inc	dptr
	movx	@dptr,a
	C$lcd.c$116$1$1 ==.
;	../src/lcd.c:116: if (cursorPos == (LCDHOME | LCD0END)) {
;	genAssign
	mov	dptr,#_cursorPos
	movx	a,@dptr
	mov	r2,a
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.b	optimized misc jump sequence
	cjne	r2,#0x8F,00111$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00119$
;	Peephole 300	removed redundant label 00120$
	C$lcd.c$117$2$2 ==.
;	../src/lcd.c:117: lcdCmd(LCDHOME | LCD1OFFSET);
;	genCall
	mov	dpl,#0xC0
	lcall	_lcdCmd
	C$lcd.c$118$2$2 ==.
;	../src/lcd.c:118: cursorPos = LCDHOME | LCD1OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0xC0
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
	ret
00111$:
	C$lcd.c$120$1$1 ==.
;	../src/lcd.c:120: else if (cursorPos == (LCDHOME | LCD1END)) {
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.b	optimized misc jump sequence
	cjne	r2,#0xCF,00108$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00121$
;	Peephole 300	removed redundant label 00122$
	C$lcd.c$121$2$3 ==.
;	../src/lcd.c:121: lcdCmd(LCDHOME | LCD2OFFSET);
;	genCall
	mov	dpl,#0x90
	lcall	_lcdCmd
	C$lcd.c$122$2$3 ==.
;	../src/lcd.c:122: cursorPos = LCDHOME | LCD2OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0x90
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
	ret
00108$:
	C$lcd.c$124$1$1 ==.
;	../src/lcd.c:124: else if (cursorPos == (LCDHOME | LCD2END)) {
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.b	optimized misc jump sequence
	cjne	r2,#0x9F,00105$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00123$
;	Peephole 300	removed redundant label 00124$
	C$lcd.c$125$2$4 ==.
;	../src/lcd.c:125: lcdCmd(LCDHOME | LCD3OFFSET);
;	genCall
	mov	dpl,#0xD0
	lcall	_lcdCmd
	C$lcd.c$126$2$4 ==.
;	../src/lcd.c:126: cursorPos = LCDHOME | LCD3OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0xD0
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
	ret
00105$:
	C$lcd.c$128$1$1 ==.
;	../src/lcd.c:128: else if (cursorPos == (LCDHOME | LCD3END)) {
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.b	optimized misc jump sequence
	cjne	r2,#0xDF,00102$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00125$
;	Peephole 300	removed redundant label 00126$
	C$lcd.c$129$2$5 ==.
;	../src/lcd.c:129: lcdCmd(LCDHOME | LCD0OFFSET);
;	genCall
	mov	dpl,#0x80
	lcall	_lcdCmd
	C$lcd.c$130$2$5 ==.
;	../src/lcd.c:130: cursorPos = LCDHOME | LCD0OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0x80
	movx	@dptr,a
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
	ret
00102$:
	C$lcd.c$133$2$6 ==.
;	../src/lcd.c:133: cursorPos++;
;	genPlus
	mov	dptr,#_cursorPos
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	movx	@dptr,a
;	Peephole 300	removed redundant label 00113$
	C$lcd.c$138$1$1 ==.
	XG$lcdputch$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdbusywait'
;------------------------------------------------------------
;rdCmd                     Allocated with name '_lcdbusywait_rdCmd_1_1'
;------------------------------------------------------------
	G$lcdbusywait$0$0 ==.
	C$lcd.c$160$1$1 ==.
;	../src/lcd.c:160: void lcdbusywait(void) {
;	-----------------------------------------
;	 function lcdbusywait
;	-----------------------------------------
_lcdbusywait:
	C$lcd.c$162$1$1 ==.
;	../src/lcd.c:162: volatile unsigned char rdCmd = 0;
;	genAssign
	mov	dptr,#_lcdbusywait_rdCmd_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
	C$lcd.c$164$1$1 ==.
;	../src/lcd.c:164: if (FALSE == f_skipBusyChk) {
;	genAssign
	mov	dptr,#_f_skipBusyChk
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCmpEq
;	gencjneshort
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198.a	optimized misc jump sequence
	cjne	r2,#0x00,00106$
	cjne	r3,#0x00,00106$
;	Peephole 200.b	removed redundant sjmp
;	Peephole 300	removed redundant label 00110$
;	Peephole 300	removed redundant label 00111$
	C$lcd.c$165$2$2 ==.
;	../src/lcd.c:165: P0 = 0xFF ;                                  // Set port as input
;	genAssign
	mov	_P0,#0xFF
	C$lcd.c$166$2$2 ==.
;	../src/lcd.c:166: LCD_RS   = RS_CMD;
;	genAssign
	clr	_P1_3
	C$lcd.c$167$2$2 ==.
;	../src/lcd.c:167: LCD_RW   = RW_READ;
;	genAssign
	setb	_P1_2
	C$lcd.c$169$2$2 ==.
;	../src/lcd.c:169: do {
00101$:
	C$lcd.c$170$3$3 ==.
;	../src/lcd.c:170: rdCmd = LCD_PORT;
;	genAssign
	mov	dptr,#_lcdPtr
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	C$lcd.c$171$2$2 ==.
;	../src/lcd.c:171: }while (rdCmd & 0x80);
;	genAssign
	mov	dptr,#_lcdbusywait_rdCmd_1_1
	mov	a,r2
	movx	@dptr,a
;	Peephole 180.a	removed redundant mov to dptr
	movx	a,@dptr
;	genAnd
	mov	r2,a
;	Peephole 105	removed redundant mov
;	genIfxJump
;	Peephole 108.e	removed ljmp by inverse jump logic
	jb	acc.7,00101$
;	Peephole 300	removed redundant label 00112$
00106$:
	C$lcd.c$173$2$1 ==.
	XG$lcdbusywait$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdgotoaddr'
;------------------------------------------------------------
;addr                      Allocated with name '_lcdgotoaddr_addr_1_1'
;------------------------------------------------------------
	G$lcdgotoaddr$0$0 ==.
	C$lcd.c$195$2$1 ==.
;	../src/lcd.c:195: void lcdgotoaddr (unsigned char addr) {
;	-----------------------------------------
;	 function lcdgotoaddr
;	-----------------------------------------
_lcdgotoaddr:
;	genReceive
	mov	a,dpl
	mov	dptr,#_lcdgotoaddr_addr_1_1
	movx	@dptr,a
	C$lcd.c$197$1$1 ==.
;	../src/lcd.c:197: if(addr < 0x80) {
;	genAssign
	mov	dptr,#_lcdgotoaddr_addr_1_1
	movx	a,@dptr
	mov	r2,a
;	genCmpLt
;	genCmp
	cjne	r2,#0x80,00106$
00106$:
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00103$
;	Peephole 300	removed redundant label 00107$
	C$lcd.c$198$2$2 ==.
;	../src/lcd.c:198: lcdbusywait();
;	genCall
	push	ar2
	lcall	_lcdbusywait
	pop	ar2
	C$lcd.c$199$2$2 ==.
;	../src/lcd.c:199: lcdCmd(LCDHOME | addr);
;	genOr
	orl	ar2,#0x80
;	genCall
	mov	dpl,r2
	push	ar2
	lcall	_lcdCmd
	pop	ar2
	C$lcd.c$200$2$2 ==.
;	../src/lcd.c:200: cursorPos = LCDHOME | addr;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,r2
	movx	@dptr,a
00103$:
	C$lcd.c$202$2$1 ==.
	XG$lcdgotoaddr$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdgotoxy'
;------------------------------------------------------------
;col                       Allocated with name '_lcdgotoxy_PARM_2'
;row                       Allocated with name '_lcdgotoxy_row_1_1'
;------------------------------------------------------------
	G$lcdgotoxy$0$0 ==.
	C$lcd.c$224$2$1 ==.
;	../src/lcd.c:224: void lcdgotoxy (unsigned char row, unsigned char col) {
;	-----------------------------------------
;	 function lcdgotoxy
;	-----------------------------------------
_lcdgotoxy:
;	genReceive
	mov	a,dpl
	mov	dptr,#_lcdgotoxy_row_1_1
	movx	@dptr,a
	C$lcd.c$225$1$1 ==.
;	../src/lcd.c:225: if((row < LCDHEIGHT) && (col < LCDWIDTH)) {
;	genAssign
	mov	dptr,#_lcdgotoxy_row_1_1
	movx	a,@dptr
	mov	r2,a
;	genCmpLt
;	genCmp
	cjne	r2,#0x04,00115$
00115$:
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00110$
;	Peephole 300	removed redundant label 00116$
;	genAssign
	mov	dptr,#_lcdgotoxy_PARM_2
	movx	a,@dptr
	mov	r3,a
;	genCmpLt
;	genCmp
	cjne	r3,#0x10,00117$
00117$:
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00110$
;	Peephole 300	removed redundant label 00118$
	C$lcd.c$226$2$2 ==.
;	../src/lcd.c:226: switch (row) {
;	genAssign
;	genCmpGt
;	genCmp
;	genIfxJump
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
;	peephole 177.h	optimized mov sequence
	mov	a,r2
;	Peephole 236.i	used r4 instead of ar4
	mov	r4,a
	add	a,#0xff - 0x03
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160.a	removed sjmp by inverse jump logic
	jc	00105$
;	Peephole 300	removed redundant label 00119$
;	genJumpTab
	mov	a,r4
;	Peephole 254	optimized left shift
	add	a,r4
	add	a,r4
	mov	dptr,#00120$
	jmp	@a+dptr
00120$:
	ljmp	00101$
	ljmp	00102$
	ljmp	00103$
	ljmp	00104$
	C$lcd.c$227$3$3 ==.
;	../src/lcd.c:227: case 0: lcdgotoaddr(LCD0OFFSET + col); break;
00101$:
;	genCall
	mov	dpl,r3
	C$lcd.c$228$3$3 ==.
;	../src/lcd.c:228: case 1: lcdgotoaddr(LCD1OFFSET + col); break;
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
;	Peephole 253.a	replaced lcall/ret with ljmp
	ljmp	_lcdgotoaddr
00102$:
;	genPlus
;     genPlusIncr
	mov	a,#0x40
;	Peephole 236.a	used r3 instead of ar3
	add	a,r3
;	genCall
	mov	r2,a
;	Peephole 244.c	loading dpl from a instead of r2
	mov	dpl,a
	C$lcd.c$229$3$3 ==.
;	../src/lcd.c:229: case 2: lcdgotoaddr(LCD2OFFSET + col); break;
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
;	Peephole 253.a	replaced lcall/ret with ljmp
	ljmp	_lcdgotoaddr
00103$:
;	genPlus
;     genPlusIncr
	mov	a,#0x10
;	Peephole 236.a	used r3 instead of ar3
	add	a,r3
;	genCall
	mov	r2,a
;	Peephole 244.c	loading dpl from a instead of r2
	mov	dpl,a
	C$lcd.c$230$3$3 ==.
;	../src/lcd.c:230: case 3: lcdgotoaddr(LCD3OFFSET + col); break;
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
;	Peephole 253.a	replaced lcall/ret with ljmp
	ljmp	_lcdgotoaddr
00104$:
;	genPlus
;     genPlusIncr
	mov	a,#0x50
;	Peephole 236.a	used r3 instead of ar3
	add	a,r3
;	genCall
	mov	r3,a
;	Peephole 244.c	loading dpl from a instead of r3
	mov	dpl,a
	C$lcd.c$231$3$3 ==.
;	../src/lcd.c:231: default: lcdgotoaddr(LCDHOME);
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 251.b	replaced sjmp to ret with ret
;	Peephole 253.a	replaced lcall/ret with ljmp
	ljmp	_lcdgotoaddr
00105$:
;	genCall
	mov	dpl,#0x80
	C$lcd.c$232$2$1 ==.
;	../src/lcd.c:232: } //switch
	C$lcd.c$234$2$1 ==.
	XG$lcdgotoxy$0$0 ==.
;	Peephole 253.c	replaced lcall with ljmp
	ljmp	_lcdgotoaddr
00110$:
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdputstr'
;------------------------------------------------------------
;string                    Allocated with name '_lcdputstr_string_1_1'
;i                         Allocated with name '_lcdputstr_i_1_1'
;------------------------------------------------------------
	G$lcdputstr$0$0 ==.
	C$lcd.c$256$2$1 ==.
;	../src/lcd.c:256: void lcdputstr (char *string) {					 	// Write the 2 line message to LCD
;	-----------------------------------------
;	 function lcdputstr
;	-----------------------------------------
_lcdputstr:
;	genReceive
	mov	r2,b
	mov	r3,dph
	mov	a,dpl
	mov	dptr,#_lcdputstr_string_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r3
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$260$2$2 ==.
;	../src/lcd.c:260: for (i=0; i<=strlen(string)-1; ++i)	{
;	genAssign
	mov	dptr,#_lcdputstr_string_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genAssign
	mov	r5,#0x00
	mov	r6,#0x00
00101$:
;	genAssign
	mov	dptr,#_lcdputstr_string_1_1
	movx	a,@dptr
	mov	r7,a
	inc	dptr
	movx	a,@dptr
	mov	r0,a
	inc	dptr
	movx	a,@dptr
	mov	r1,a
;	genCall
	mov	dpl,r7
	mov	dph,r0
	mov	b,r1
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_strlen
	mov	a,dpl
	mov	b,dph
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;	genMinus
;	genMinusDec
	add	a,#0xff
	mov	r7,a
	mov	a,b
	addc	a,#0xff
	mov	r0,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,r7
	subb	a,r5
	mov	a,r0
	xrl	a,#0x80
	mov	b,r6
	xrl	b,#0x80
	subb	a,b
;	genIfxJump
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160.a	removed sjmp by inverse jump logic
	jc	00105$
;	Peephole 300	removed redundant label 00110$
	C$lcd.c$261$2$2 ==.
;	../src/lcd.c:261: lcdputch(string[i]);
;	genPlus
;	Peephole 236.g	used r5 instead of ar5
	mov	a,r5
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r7,a
;	Peephole 236.g	used r6 instead of ar6
	mov	a,r6
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r0,a
	mov	ar1,r4
;	genPointerGet
;	genGenPointerGet
	mov	dpl,r7
	mov	dph,r0
	mov	b,r1
	lcall	__gptrget
;	genCall
	mov	r7,a
;	Peephole 244.c	loading dpl from a instead of r7
	mov	dpl,a
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	lcall	_lcdputch
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
	C$lcd.c$260$1$1 ==.
;	../src/lcd.c:260: for (i=0; i<=strlen(string)-1; ++i)	{
;	genPlus
;     genPlusIncr
	inc	r5
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 243	avoided branch to sjmp
	cjne	r5,#0x00,00101$
	inc	r6
;	Peephole 300	removed redundant label 00111$
	sjmp	00101$
00105$:
	C$lcd.c$263$1$1 ==.
	XG$lcdputstr$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'clrLcd'
;------------------------------------------------------------
;------------------------------------------------------------
	G$clrLcd$0$0 ==.
	C$lcd.c$285$1$1 ==.
;	../src/lcd.c:285: void clrLcd () {
;	-----------------------------------------
;	 function clrLcd
;	-----------------------------------------
_clrLcd:
	C$lcd.c$287$1$1 ==.
;	../src/lcd.c:287: lcdCmd(LCDCLEAR); 									//-- clear LCD display
;	genCall
	mov	dpl,#0x01
	lcall	_lcdCmd
	C$lcd.c$288$1$1 ==.
;	../src/lcd.c:288: lcdCmd(LCDHOME); 									//-- cursor go to 0x00
;	genCall
	mov	dpl,#0x80
	lcall	_lcdCmd
	C$lcd.c$289$1$1 ==.
;	../src/lcd.c:289: cursorPos = LCDHOME | LCD0OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0x80
	movx	@dptr,a
	C$lcd.c$290$1$1 ==.
;	../src/lcd.c:290: delay_millisec(5);
;	genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0005
	C$lcd.c$291$1$1 ==.
	XG$clrLcd$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_delay_millisec
;
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdHome'
;------------------------------------------------------------
;------------------------------------------------------------
	G$lcdHome$0$0 ==.
	C$lcd.c$313$1$1 ==.
;	../src/lcd.c:313: void lcdHome () {
;	-----------------------------------------
;	 function lcdHome
;	-----------------------------------------
_lcdHome:
	C$lcd.c$315$1$1 ==.
;	../src/lcd.c:315: lcdCmd(LCDHOME); 									//-- cursor go to 0x00
;	genCall
	mov	dpl,#0x80
	lcall	_lcdCmd
	C$lcd.c$316$1$1 ==.
;	../src/lcd.c:316: cursorPos = LCDHOME | LCD0OFFSET;
;	genAssign
	mov	dptr,#_cursorPos
	mov	a,#0x80
	movx	@dptr,a
;	Peephole 300	removed redundant label 00101$
	C$lcd.c$317$1$1 ==.
	XG$lcdHome$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdPrintToLine'
;------------------------------------------------------------
;string                    Allocated with name '_lcdPrintToLine_PARM_2'
;line                      Allocated with name '_lcdPrintToLine_line_1_1'
;size                      Allocated with name '_lcdPrintToLine_size_1_1'
;------------------------------------------------------------
	G$lcdPrintToLine$0$0 ==.
	C$lcd.c$339$1$1 ==.
;	../src/lcd.c:339: void lcdPrintToLine(unsigned int line, char *string) {
;	-----------------------------------------
;	 function lcdPrintToLine
;	-----------------------------------------
_lcdPrintToLine:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_lcdPrintToLine_line_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$343$1$1 ==.
;	../src/lcd.c:343: if (line <= 3) {
;	genAssign
	mov	dptr,#_lcdPrintToLine_line_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x03
	subb	a,r2
;	Peephole 181	changed mov to clr
	clr	a
	subb	a,r3
;	genIfxJump
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160.a	removed sjmp by inverse jump logic
	jc	00105$
;	Peephole 300	removed redundant label 00109$
	C$lcd.c$344$2$2 ==.
;	../src/lcd.c:344: lcdgotoxy(line,0);
;	genCast
;	genAssign
	mov	dptr,#_lcdgotoxy_PARM_2
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	lcall	_lcdgotoxy
	C$lcd.c$345$2$2 ==.
;	../src/lcd.c:345: size = strlen(string)-1;
;	genAssign
	mov	dptr,#_lcdPrintToLine_PARM_2
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	_strlen
	mov	a,dpl
	mov	b,dph
;	genMinus
;	genMinusDec
	add	a,#0xff
	mov	r2,a
	mov	a,b
	addc	a,#0xff
	mov	r3,a
	C$lcd.c$346$2$2 ==.
;	../src/lcd.c:346: if (size > LCDWIDTH) {
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x10
	subb	a,r2
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r3
	xrl	b,#0x80
	subb	a,b
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00102$
;	Peephole 300	removed redundant label 00110$
	C$lcd.c$347$3$3 ==.
;	../src/lcd.c:347: string[LCDWIDTH] = 0;
;	genAssign
	mov	dptr,#_lcdPrintToLine_PARM_2
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genPlus
;     genPlusIncr
	mov	a,#0x10
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r2,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r3,a
;	genPointerSet
;	genGenPointerSet
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
;	Peephole 181	changed mov to clr
	clr	a
	lcall	__gptrput
00102$:
	C$lcd.c$349$2$2 ==.
;	../src/lcd.c:349: lcdputstr(string);
;	genAssign
	mov	dptr,#_lcdPrintToLine_PARM_2
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
	inc	dptr
	movx	a,@dptr
	mov	r4,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	C$lcd.c$351$2$1 ==.
	XG$lcdPrintToLine$0$0 ==.
;	Peephole 253.c	replaced lcall with ljmp
	ljmp	_lcdputstr
00105$:
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdPrintf1Int'
;------------------------------------------------------------
;string                    Allocated with name '_lcdPrintf1Int_PARM_2'
;int1                      Allocated with name '_lcdPrintf1Int_PARM_3'
;line                      Allocated with name '_lcdPrintf1Int_line_1_1'
;str                       Allocated with name '_lcdPrintf1Int_str_1_1'
;------------------------------------------------------------
	G$lcdPrintf1Int$0$0 ==.
	C$lcd.c$373$2$1 ==.
;	../src/lcd.c:373: void lcdPrintf1Int(unsigned int line, char *string, int int1) {
;	-----------------------------------------
;	 function lcdPrintf1Int
;	-----------------------------------------
_lcdPrintf1Int:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_lcdPrintf1Int_line_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$375$1$1 ==.
;	../src/lcd.c:375: char str[2*LCDWIDTH] = {0};
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#_lcdPrintf1Int_str_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
	C$lcd.c$377$1$1 ==.
;	../src/lcd.c:377: sprintf(str, string, int1);
;	genIpush
	mov	dptr,#_lcdPrintf1Int_PARM_3
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf1Int_PARM_2
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	a,#_lcdPrintf1Int_str_1_1
	push	acc
	mov	a,#(_lcdPrintf1Int_str_1_1 >> 8)
	push	acc
;	Peephole 181	changed mov to clr
	clr	a
	push	acc
;	genCall
	lcall	_sprintf
	mov	a,sp
	add	a,#0xf8
	mov	sp,a
	C$lcd.c$378$1$1 ==.
;	../src/lcd.c:378: if ((strlen(str)-1) > LCDWIDTH) {
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#_lcdPrintf1Int_str_1_1
	mov	b,#0x00
	lcall	_strlen
	mov	a,dpl
	mov	b,dph
;	genMinus
;	genMinusDec
	add	a,#0xff
	mov	r2,a
	mov	a,b
	addc	a,#0xff
	mov	r3,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x10
	subb	a,r2
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r3
	xrl	b,#0x80
	subb	a,b
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00102$
;	Peephole 300	removed redundant label 00106$
	C$lcd.c$379$2$2 ==.
;	../src/lcd.c:379: str[LCDWIDTH] = 0;
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#(_lcdPrintf1Int_str_1_1 + 0x0010)
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
00102$:
	C$lcd.c$381$1$1 ==.
;	../src/lcd.c:381: lcdPrintToLine(line, str);
;	genAssign
	mov	dptr,#_lcdPrintf1Int_line_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	mov	dptr,#_lcdPrintToLine_PARM_2
	mov	a,#_lcdPrintf1Int_str_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,#(_lcdPrintf1Int_str_1_1 >> 8)
	movx	@dptr,a
	inc	dptr
	mov	a,#0x0
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	C$lcd.c$382$1$1 ==.
	XG$lcdPrintf1Int$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_lcdPrintToLine
;
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdPrintf2Int'
;------------------------------------------------------------
;string                    Allocated with name '_lcdPrintf2Int_PARM_2'
;int1                      Allocated with name '_lcdPrintf2Int_PARM_3'
;int2                      Allocated with name '_lcdPrintf2Int_PARM_4'
;line                      Allocated with name '_lcdPrintf2Int_line_1_1'
;str                       Allocated with name '_lcdPrintf2Int_str_1_1'
;------------------------------------------------------------
	G$lcdPrintf2Int$0$0 ==.
	C$lcd.c$404$1$1 ==.
;	../src/lcd.c:404: void lcdPrintf2Int(unsigned int line, char *string, int int1, int int2) {
;	-----------------------------------------
;	 function lcdPrintf2Int
;	-----------------------------------------
_lcdPrintf2Int:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_lcdPrintf2Int_line_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$406$1$1 ==.
;	../src/lcd.c:406: char str[2*LCDWIDTH] = {0};
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#_lcdPrintf2Int_str_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
	C$lcd.c$408$1$1 ==.
;	../src/lcd.c:408: sprintf(str, string, int1, int2);
;	genIpush
	mov	dptr,#_lcdPrintf2Int_PARM_4
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf2Int_PARM_3
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf2Int_PARM_2
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	a,#_lcdPrintf2Int_str_1_1
	push	acc
	mov	a,#(_lcdPrintf2Int_str_1_1 >> 8)
	push	acc
;	Peephole 181	changed mov to clr
	clr	a
	push	acc
;	genCall
	lcall	_sprintf
	mov	a,sp
	add	a,#0xf6
	mov	sp,a
	C$lcd.c$409$1$1 ==.
;	../src/lcd.c:409: if ((strlen(str)-1) > LCDWIDTH) {
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#_lcdPrintf2Int_str_1_1
	mov	b,#0x00
	lcall	_strlen
	mov	a,dpl
	mov	b,dph
;	genMinus
;	genMinusDec
	add	a,#0xff
	mov	r2,a
	mov	a,b
	addc	a,#0xff
	mov	r3,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x10
	subb	a,r2
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r3
	xrl	b,#0x80
	subb	a,b
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00102$
;	Peephole 300	removed redundant label 00106$
	C$lcd.c$410$2$2 ==.
;	../src/lcd.c:410: str[LCDWIDTH] = 0;
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#(_lcdPrintf2Int_str_1_1 + 0x0010)
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
00102$:
	C$lcd.c$412$1$1 ==.
;	../src/lcd.c:412: lcdPrintToLine(line, str);
;	genAssign
	mov	dptr,#_lcdPrintf2Int_line_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	mov	dptr,#_lcdPrintToLine_PARM_2
	mov	a,#_lcdPrintf2Int_str_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,#(_lcdPrintf2Int_str_1_1 >> 8)
	movx	@dptr,a
	inc	dptr
	mov	a,#0x0
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	C$lcd.c$413$1$1 ==.
	XG$lcdPrintf2Int$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_lcdPrintToLine
;
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdPrintf3Int'
;------------------------------------------------------------
;string                    Allocated with name '_lcdPrintf3Int_PARM_2'
;int1                      Allocated with name '_lcdPrintf3Int_PARM_3'
;int2                      Allocated with name '_lcdPrintf3Int_PARM_4'
;int3                      Allocated with name '_lcdPrintf3Int_PARM_5'
;line                      Allocated with name '_lcdPrintf3Int_line_1_1'
;str                       Allocated with name '_lcdPrintf3Int_str_1_1'
;------------------------------------------------------------
	G$lcdPrintf3Int$0$0 ==.
	C$lcd.c$435$1$1 ==.
;	../src/lcd.c:435: void lcdPrintf3Int(unsigned int line, char *string, int int1, int int2, int int3) {
;	-----------------------------------------
;	 function lcdPrintf3Int
;	-----------------------------------------
_lcdPrintf3Int:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_lcdPrintf3Int_line_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$437$1$1 ==.
;	../src/lcd.c:437: char str[2*LCDWIDTH] = {0};
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#_lcdPrintf3Int_str_1_1
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
	C$lcd.c$439$1$1 ==.
;	../src/lcd.c:439: sprintf(str, string, int1, int2, int3);
;	genIpush
	mov	dptr,#_lcdPrintf3Int_PARM_5
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf3Int_PARM_4
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf3Int_PARM_3
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	dptr,#_lcdPrintf3Int_PARM_2
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
	inc	dptr
	movx	a,@dptr
	push	acc
;	genIpush
	mov	a,#_lcdPrintf3Int_str_1_1
	push	acc
	mov	a,#(_lcdPrintf3Int_str_1_1 >> 8)
	push	acc
;	Peephole 181	changed mov to clr
	clr	a
	push	acc
;	genCall
	lcall	_sprintf
	mov	a,sp
	add	a,#0xf4
	mov	sp,a
	C$lcd.c$440$1$1 ==.
;	../src/lcd.c:440: if ((strlen(str)-1) > LCDWIDTH) {
;	genCall
;	Peephole 182.a	used 16 bit load of DPTR
	mov	dptr,#_lcdPrintf3Int_str_1_1
	mov	b,#0x00
	lcall	_strlen
	mov	a,dpl
	mov	b,dph
;	genMinus
;	genMinusDec
	add	a,#0xff
	mov	r2,a
	mov	a,b
	addc	a,#0xff
	mov	r3,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x10
	subb	a,r2
;	Peephole 159	avoided xrl during execution
	mov	a,#(0x00 ^ 0x80)
	mov	b,r3
	xrl	b,#0x80
	subb	a,b
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00102$
;	Peephole 300	removed redundant label 00106$
	C$lcd.c$441$2$2 ==.
;	../src/lcd.c:441: str[LCDWIDTH] = 0;
;	genPointerSet
;     genFarPointerSet
	mov	dptr,#(_lcdPrintf3Int_str_1_1 + 0x0010)
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
00102$:
	C$lcd.c$443$1$1 ==.
;	../src/lcd.c:443: lcdPrintToLine(line, str);
;	genAssign
	mov	dptr,#_lcdPrintf3Int_line_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	mov	dptr,#_lcdPrintToLine_PARM_2
	mov	a,#_lcdPrintf3Int_str_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,#(_lcdPrintf3Int_str_1_1 >> 8)
	movx	@dptr,a
	inc	dptr
	mov	a,#0x0
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	C$lcd.c$444$1$1 ==.
	XG$lcdPrintf3Int$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_lcdPrintToLine
;
;------------------------------------------------------------
;Allocation info for local variables in function 'clrLine'
;------------------------------------------------------------
;line                      Allocated with name '_clrLine_line_1_1'
;size                      Allocated with name '_clrLine_size_1_1'
;------------------------------------------------------------
	G$clrLine$0$0 ==.
	C$lcd.c$466$1$1 ==.
;	../src/lcd.c:466: void clrLine(unsigned int line) {
;	-----------------------------------------
;	 function clrLine
;	-----------------------------------------
_clrLine:
;	genReceive
	mov	r2,dph
	mov	a,dpl
	mov	dptr,#_clrLine_line_1_1
	movx	@dptr,a
	inc	dptr
	mov	a,r2
	movx	@dptr,a
	C$lcd.c$470$1$1 ==.
;	../src/lcd.c:470: if (line <= 3) {
;	genAssign
	mov	dptr,#_clrLine_line_1_1
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCmpGt
;	genCmp
	clr	c
	mov	a,#0x03
	subb	a,r2
;	Peephole 181	changed mov to clr
	clr	a
	subb	a,r3
;	genIfxJump
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 160.a	removed sjmp by inverse jump logic
	jc	00103$
;	Peephole 300	removed redundant label 00106$
	C$lcd.c$471$2$2 ==.
;	../src/lcd.c:471: lcdPrintToLine(line, LCDLINECLR);
;	genCast
	mov	dptr,#_lcdPrintToLine_PARM_2
	mov	a,#__str_0
	movx	@dptr,a
	inc	dptr
	mov	a,#(__str_0 >> 8)
	movx	@dptr,a
	inc	dptr
	mov	a,#0x80
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	lcall	_lcdPrintToLine
	pop	ar3
	pop	ar2
	C$lcd.c$472$2$2 ==.
;	../src/lcd.c:472: lcdgotoxy(line,0);
;	genCast
;	genAssign
	mov	dptr,#_lcdgotoxy_PARM_2
;	Peephole 181	changed mov to clr
	clr	a
	movx	@dptr,a
;	genCall
	mov	dpl,r2
	C$lcd.c$474$2$1 ==.
	XG$clrLine$0$0 ==.
;	Peephole 253.c	replaced lcall with ljmp
	ljmp	_lcdgotoxy
00103$:
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'lcdcreatechar'
;------------------------------------------------------------
;row_vals                  Allocated with name '_lcdcreatechar_PARM_2'
;ccode                     Allocated with name '_lcdcreatechar_ccode_1_1'
;i                         Allocated with name '_lcdcreatechar_i_1_1'
;state                     Allocated with name '_lcdcreatechar_state_1_1'
;------------------------------------------------------------
	G$lcdcreatechar$0$0 ==.
	C$lcd.c$498$2$1 ==.
;	../src/lcd.c:498: void lcdcreatechar(unsigned char ccode, unsigned char row_vals[]) {
;	-----------------------------------------
;	 function lcdcreatechar
;	-----------------------------------------
_lcdcreatechar:
;	genReceive
	mov	a,dpl
	mov	dptr,#_lcdcreatechar_ccode_1_1
	movx	@dptr,a
	C$lcd.c$503$1$1 ==.
;	../src/lcd.c:503: LCD_RS   = RS_CMD;
;	genAssign
	clr	_P1_3
	C$lcd.c$504$1$1 ==.
;	../src/lcd.c:504: LCD_RW   = RW_READ;
;	genAssign
	setb	_P1_2
	C$lcd.c$505$1$1 ==.
;	../src/lcd.c:505: state = LCD_PORT;
;	genAssign
	mov	dptr,#_lcdPtr
	movx	a,@dptr
	mov	r2,a
	inc	dptr
	movx	a,@dptr
	mov	r3,a
;	genCast
	C$lcd.c$507$2$2 ==.
;	../src/lcd.c:507: for (i=0; i<CUSTCHARROWS; i++) {
;	genAssign
	mov	dptr,#_lcdcreatechar_ccode_1_1
	movx	a,@dptr
;	genLeftShift
;	genLeftShiftLiteral
;	genlshOne
	mov	r3,a
;	Peephole 105	removed redundant mov
	swap	a
	rr	a
	anl	a,#0xf8
	mov	r3,a
;	genOr
	orl	ar3,#0x40
;	genAssign
	mov	dptr,#_lcdcreatechar_PARM_2
	movx	a,@dptr
	mov	r4,a
	inc	dptr
	movx	a,@dptr
	mov	r5,a
	inc	dptr
	movx	a,@dptr
	mov	r6,a
;	genAssign
	mov	r7,#0x00
00101$:
;	genCmpLt
;	genCmp
	cjne	r7,#0x08,00110$
00110$:
;	genIfxJump
;	Peephole 108.a	removed ljmp by inverse jump logic
	jnc	00104$
;	Peephole 300	removed redundant label 00111$
	C$lcd.c$508$1$1 ==.
;	../src/lcd.c:508: lcdCmd( CGRAMOFFSET | (ccode<<3) | i );
;	genIpush
	push	ar2
;	genOr
	mov	a,r7
	orl	a,r3
;	genCall
	mov	r0,a
;	Peephole 244.c	loading dpl from a instead of r0
	mov	dpl,a
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_lcdCmd
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
	C$lcd.c$509$2$2 ==.
;	../src/lcd.c:509: lcdputch(row_vals[i]);
;	genPlus
;	Peephole 236.g	used r7 instead of ar7
	mov	a,r7
;	Peephole 236.a	used r4 instead of ar4
	add	a,r4
	mov	r0,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r5 instead of ar5
	addc	a,r5
	mov	r1,a
	mov	ar2,r6
;	genPointerGet
;	genGenPointerGet
	mov	dpl,r0
	mov	dph,r1
	mov	b,r2
	lcall	__gptrget
;	genCall
	mov	r0,a
;	Peephole 244.c	loading dpl from a instead of r0
	mov	dpl,a
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_lcdputch
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
	C$lcd.c$507$1$1 ==.
;	../src/lcd.c:507: for (i=0; i<CUSTCHARROWS; i++) {
;	genPlus
;     genPlusIncr
	inc	r7
;	genIpop
	pop	ar2
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00101$
00104$:
	C$lcd.c$512$1$1 ==.
;	../src/lcd.c:512: lcdCmd(state);
;	genCall
	mov	dpl,r2
	C$lcd.c$513$1$1 ==.
	XG$lcdcreatechar$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_lcdCmd
;
	.area CSEG    (CODE)
	.area CONST   (CODE)
Flcd$_str_0$0$0 == .
__str_0:
	.ascii "                "
	.db 0x00
	.area XINIT   (CODE)
Flcd$__xinit_f_skipBusyChk$0$0 == .
__xinit__f_skipBusyChk:
	.byte #0x01,#0x00
Flcd$__xinit_cursorPos$0$0 == .
__xinit__cursorPos:
	.db #0x80
